표 위젯
경로: 위젯 갤러리> 기본> 표
이 위젯을 사용해 데이터 소스에서 제공된 데이터로 표를 만듭니다.
표를 구성하는 방법:
- 표 위젯을 화면에 놓고 표 템플릿을 구성합니다.
- 위젯을 셀 안에 추가하여 데이터 소스에서 제공된 데이터로 표를 채울 때 행 템플릿으로 사용될 행을 하나 이상 구성합니다.
- 표의 행을 채우기 위해 사용될 데이터 소스를 선택합니다
- 위젯과 데이터 소스의 링크를 규정합니다.
표 위젯 구성하기
표 위젯의 두 상태:
- 보기 모드
- 편집 모드.
표를 클릭하면 보기 모드에서 위젯을 관리하게 되고 더블클릭하면 편집 모드에 들어갑니다. 나가서 보기 모드로 돌아가려면 표 바깥에서 클릭합니다.
보기 모드
보기 모드에서는 표 레이아웃을 구성할 수 있습니다. 표를 끌어 페이지에 놓고 표 크기를 조정하며, 템플릿 행의 수, 열의 수 및 기본 표 특성을 규정합니다.
편집 모드
편집 모드에서는 표의 형식과 각 셀의 내용을 구성할 수 있습니다. 표의 각 열은 열 템플릿으로 작용할 것입니다.
표의 모양을 구성하려면 표의 실렉터를 클릭하여 구성할 항목을 선택합니다.
행 또는 컬럼을 추가하거나 삭제하기
행 또는 컬럼을 추가하거나 삭제하려면 그리드를 더블 클릭하여 편집 모드로 들어간 다음, 컬럼 또는 행 셀렉터를 오른쪽 클릭하여 상황별 메뉴를 엽니다.
행 또는 컬럼을 병합하거나 분할하기
행 또는 컬럼을 병합하거나 분할하려면 그리드를 더블 클릭하여 편집 모드로 들어간 다음, 커서를 리본으로 이동시킵니다:
- 검은색 삼각형을 더블 클릭하면 인접한 두 개의 행 또는 컬럼이 병합됩니다 (1)
행 또는 컬럼이 비어 있는 경우에만 병합이 가능합니다.
- 리본을 더블 클릭하면, 선택했던 행 또는 컬럼이 분할됩니다 (2)
셀의 내용을 구성하려면 위젯을 끌어 셀 내부에 놓습니다.
단일 셀 내부에 더 많은 위젯이 필요한 경우에는 위젯 그룹을 만들어 페이지로부터 셀로 복사합니다.
데이터 소스 구성하기
표를 채울 데이터를 제공하는 데이터 소스는 표 데이터 소스 위젯 또는 JavaScript 개체일 수 있습니다.
표 데이터 소스 위젯
경로: 위젯 갤러리> 기본> 표
- 표 데이터 소스 위젯을 끌어 페이지에 놓습니다
- 표 모델 파라미터를 데이터 소스의 링크에 설정합니다.
데이터 소스를 선택하고 TableDataSrcWgt 에디터 내부에 필요한 행과 열을 추가합니다. 다음 예에서는 두 행 템플릿을 규정하였습니다:
- 행 0
표의 표제. 정적 텍스트만 포함합니다. - 행 1
데이터가 포함된 행의 템플릿. 첫 번째 열에서는 설명이 포함될 라벨을 추가하였고 두 번째 열에서는 값이 포함될 필드를 추가하였습니다.
각 행에 행 타입을 지정해야 합니다. 행은 해당 행 템플릿의 형식을 취할 것입니다. 행 템플릿의 각 셀에 놓인 위젯이 해당 타입의 행에 나타날 것입니다.
데이터 소스의 링크를 규정
- 표 위젯을 더블클릭하여 편집 모드에 들어가 위젯을 선택합니다
- 데이터 소스에서 읽을 특성을 선택합니다
- 데이터를 제공할 데이터 소스의 열을 선택합니다
아래 그림은 우리의 예가 런타임에서 어떻게 렌더링될지를 보여줍니다
고정 표제
첫 번째 행이 스크롤될 수 없게 하려면 데이터 소스 툴박스의 "고정 표제 체크박스를 체크하거나 데이터 소스 특성 패널 내부의 "표제 표시" 특성을 참으로 설정합니다(이 파라미터는 고급 보기에서만 사용할 수 있습니다).
열 오버라이드
정수 배열을 사용해 런타임에서 열 순서를 규정하거나 또는 수정할 수 있습니다. 이 특성을 사용할 때는 정수 배열을 첨부하고 지수를 -1로 설정하십시오(전체 배열을 선택하기 위해).
가져오기 모드
활성화하면 표가 화면을 채울 최소 숫자의 행을 로드합니다. 큰 표를 포함한 페이지를 빠르게 로딩할 수 있습니다. 스크롤 시, 표가 끝부분에 도달할 때 새 행이 로드되어 데이터 베이스 전체를 스크롤 할 수 있습니다.
"로드된 행" 매개변수를 사용하면 주기당 로드해야 하는 행 수를 선택할 수 있습니다. 값이 클수록 페이지 로드에 더 많은 시간이 걸리지만, 더 많은 행이 로드되어 스크롤 할 수 있습니다(스크롤 시 로드하는 양이 더 적음).
다중 언어
다언어 지원을 가능하게 하려면 열의 다언어 아이콘을 마우스 오른쪽 버튼으로 클릭합니다. 아이콘 색이 바뀌어 지원이 가능하게 되었음을 표시합니다.
필요하지 않을 때는 더 나은 성능을 위해 다언어 지원 활성화를 하지 마십시오.
데이터 소스 가져오기/내보내기
xml 파일을 사용해 데이터 소스 구성을 가져오기/내보내기 할 수 있습니다
JavaScript 개체
데이터 소스 위젯 대신에 데이터를 채울 표를 JavaScript 개체로부터 제공할 수 있습니다. 이 경우에는 요소 배열을 사용할 데이터로 채우고 배열을 표 위젯에 지정해야 합니다.
var myTable = page.getWidget("TableWgt1");
myTable.model = model;
모델은 표 정의 및 데이터로 된 요소들의 배열입니다. 배열의 첫 번째 요소는 행 템플릿을 포함하고 다른 요소들은 표 행에 채울 데이터를 포함할 것입니다
model[0] = row_templates; // row templates model[1] = row_data1; // data of the row1 model[2] = row_data2; // data of the row2 model[3] = row_data3; // data of the row3 model[4] = row_data4; // data of the row4 model[5] = row_data4; // data of the row5
행 템플릿은 다차원 배열로서 각 배열은 한 템플릿 행의 데이터 링크를 규정합니다.
아래 예에서는 두 행을 위한 템플릿이 있습니다.
var row_templates = {
_h : [
[ [] , [] ], //rowType = 0
[ ["text"] , ["value"] ] //rowType = 1
]
}
첫 번째 행의 두 열에는 데이터 링크가 없습니다. 표의 첫 번째 행에 대한 표제를 위해 이 템플릿을 사용합니다.
두 번째 행은 위젯의 “텍스트” 특성으로 한 행의 템플릿을 첫 번째 열 안에 규정하고 위젯의 “값” 특성을 두 번째 열 안으로 규정합니다. 이들은 모델 변수 내부에 제공된 데이터를 사용해 동적으로 채워질 것입니다.
아래 예에서는 데이터 행을 규정합니다
var row_data = {
_t : 1,
_v : ["Temperature:", { _c : "dl" , s : "_TagMgr", a : "Tag1", i: 0, m : 2 }]
}
첫 번째 요소는 사용할 행 템플릿이고 두 번째 요소는 사용할데이터 배열입니다. 이 예에서 “온도:”는 첫 번째 열 위젯 내부에 사용할 텍스트이고 다른 요소는 두 번째 열에 위젯 값 특성을 채울 값을 제공할 데이터 링크입니다.
데이터 링크 요소:
| 파라미터 | 설명 |
|---|---|
| _c : "dl" |
|
| s : "_TagMgr" |
|
| a : "Tag1", i: 0, m:2 |
태그 명칭과 지수를 지정하고(태그가 배열일 때 필요) 읽기/쓰기 모드를 지정합니다
|
아래의 JavaScript 코드는 표 데이터 소스 위젯을 사용하여 이전 예의 같은 표를 생성할 것입니다
var model = [];
var row_templates = {
_h : [
[ [] , [] ], //rowType = 0
[ ["text"] , ["value"] ] //rowType = 1
]
}
var row_data1 = {
_t : 0,
_v : [],
_h : true
}
var row_data2 = {
_t : 1,
_v : ["Temperature:", { _c : "dl" , s : "_TagMgr", a : "Tag1", i: 0, m : 2 }]
}
var row_data3 = {
_t : 1,
_v : ["Humidity:", { _c : "dl" , s : "_TagMgr", a : "Tag2", i: 0, m : 2 }]
}
var row_data4 = {
_t : 1,
_v : ["Noise:", { _c : "dl" , s : "_TagMgr", a : "Tag3", i: 0, m : 2 }]
}
var row_data5 = {
_t : 1,
_v : ["Brightness:", { _c : "dl" , s : "_TagMgr", a : "Tag4", i: 0, m : 2 }]
}
model[0] = row_templates;
model[1] = row_data1;
model[2] = row_data2;
model[3] = row_data3;
model[4] = row_data4;
model[5] = row_data5;
var myTable = page.getWidget("TableWgt1");
myTable.model = model;
첫 번째 행(row_data1)은 스크롤될 수 없도록 하기 위해 지침 _h: true를 포함합니다.
var row_data1 = {
_t : 0,
_v : [],
_h : true
}
다중 언어
다언어 텍스트는 아래 요소를 사용해 입력할 수 있습니다:
| 파라미터 | 설명 |
|---|---|
| _c : "ml" |
|
| mltext : { ... } |
커플 리스트: "ID Language":"Text" 예:
|
예:
var row_data2 = {
_t : 1,
_v : [ { _c : "ml" , mltext : { "en-US" : "Temperature:",
"it-IT" : "Temperatura:"} },
{ _c : "dl" , s : "_TagMgr", a : "Tag1", i: 0, m : 2 }
]
}
행 배경색
행 배경색 파라미터를 사용해 관련 행의 배경색을 포함할 데이터 소스 위젯의 열을 규정할 수 있습니다.
표의 행의 배경색을 구성하는 방법:
- 각 행의 배경색을 포함하기 위해 데이터 소스 위젯 내부에 새 열을 추가합니다
- 표의 “행 배경색” 파라미터가 데이터 소스 위젯의 컬러 열을 가리키도록 구성합니다.
표 필터
“표 필터” 특성을 사용해 표 내부에 보일 수 있는 내용을 필터링할 수 있습니다. 데이터 링크에서 식을 사용해 데이터를 필터링하기 위해 사용할 기준을 규정할 수 있습니다(상세 설명은 페이지 1의 "수식" 장 참조).
표의 각 행은 표 필터의 데이터 링크가 참 값을 반환할 때만 보일 것입니다.
예 1
설명 열 내부에 “something”이 포함된 행만 보기 원하는 경우, 아래 공식을 사용하면 됩니다:
=$Contains($('Description:TableDataSrcWgt'),$('value:SearchOnTable'))
여기서:
- 'Description:TableDataSrcWgt'는 체크할 열을 식별하기 위해 표로부터 사용되는데이터 소스 위젯의 동적 필드입니다
- 'value:SearchOnTable'은 검색할 문자열이 포함될 텍스트 필드의 값입니다
예 2
플래그를 사용해 표 내부에 노출할 파라미터를 규정하는 방법:
먼저 관련 행을 가능하게 할 플래그를 포함할 새 열을 데이터 소스 내부에 추가합니다. 그다음에 표 필터의 데이터 링크를 플래그가 들어있는 새 열에 링크합니다.
표 정렬
표의 행들을 정렬하려면 표를 정렬하기 위해 사용하기 원하는 데이터 소스의 열을 선택합니다.
- 정렬 모드는 오름차순 또는 내림차순일 수 있습니다
- 정렬 규칙은 알파벳순 또는 수치순일 수 있습니다
열이 반복되는 경우 다중 정렬(STABLE 정렬)이 유용합니다. 최대 3개의 정렬 열을 사용할 수 있습니다.
SetTableSortingColumn 매크로를 사용해서도 표를 정렬할 수 있습니다(상세 설명은 페이지 1의 "표 정렬 열 설정" 참조).
수평 스크롤 자세
“수평 스크롤 자세”는 두 표의 수평 스크롤 이동의 동기화를 유지할 수 있게 합니다.
수평 스크롤 자세 파라미터는 고급 특성 보기 모드에서만 사용할 수 있습니다
페이지 사전 캐싱
일반적으로 JMobile HMI Runtime는 디스플레이에 보일 데이터만 가져옵니다. 표 스크롤링을 더욱 즐겁게 만들려면 표시되는 행의 다음 및 이전 행의 데이터를 사전에 로드하는 것이 유용할 수 있습니다. 페이지 사전 캐싱 파라미터를 사용하여 얼마나 많은 페이지를 사전 로드할 것인지를 규정할 수 있습니다.
- 0 = 페이지를 사전 로드하지 않음
- N = 사전 로드할 페이지의 수
예:
행이 4개인 표와 페이지 사전 캐싱 = 2를 사용
- 사전 로드할 행의 수는 8임 (2 페이지 x 4 행)
- 이전에 4행 (표를 위로 스크롤할 준비 됨)
- 위에 4행 (표를 아래로 스크롤할 준비 됨)
페이지 사전 캐싱 파라미터는 고급 특성 보기 모드에서만 사용할 수 있습니다
표가 포함된 위젯
갤러리 내부에 예컨대 추세 표, 감사 표 등의 표가 포함된 위젯이 있습니다. 표의 특성 또는 데이터 소스의 특성을 열기 위해 개체 보기 탭을 사용하여 구성할 필요가 있는 요소를 선택할 수 있습니다.
표 인쇄
표 위젯을 보고서 인쇄 갤러리에서 찾아 사용할 수 있습니다.